1. Field of the Invention
The present invention relates to fibre channel systems, and more particularly, to in-line buffer to buffer credit recovery.
2. Background of the Invention
Computer networks are used in every facet of modern life. These networks use high performance switching and data handling systems. Interconnected computers and high performance storage devices are commonly used. A switch is a network device at a node that sends and receives data across the network in units of frames. Various standards are used in these networks, for example, the Fibre Channel standard.
Fibre channel is a set of American National Standard Institute (ANSI) standards which provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre channel provides an input/output interface to meet the requirements of both channel and network users.
Fibre channel supports three different topologies: point-to-point, arbitrated loop and fibre channel fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The fibre channel fabric topology attaches host systems directly to a fabric, which are then connected to multiple devices. The fibre channel fabric topology allows several media types to be interconnected.
Fibre channel is a closed system that relies on multiple ports to exchange information on attributes and characteristics to determine if the ports can operate together. If the ports can work together, they define the criteria under which they communicate.
In fibre channel, a path is established between two nodes where the path's primary task is to transport data from one point to another at high speed with low latency, performing only simple error detection in hardware.
Fibre channel fabric devices include a node port or “N_Port” that manages fabric connections. The N_port establishes a connection to a fabric element (e.g., a switch) having a fabric port or F_port. Fabric elements include the intelligence to handle routing, error detection, recovery, and similar management functions.
A fibre channel switch is a multi-port device where each port manages a simple point-to-point connection between itself and its attached system. Each port can be attached to a server, peripheral, I/O subsystem, bridge, hub, router, or even another switch. A switch receives messages from one port and automatically routes it to another port. Multiple calls or data transfers happen concurrently through the multi-port fibre channel switch.
Fibre channel switches use memory buffers to hold frames received and sent across a network. Associated with these buffers are credits, which are the number of frames that a buffer can hold per fabric port.
In Fibre Channel, buffer to buffer credit mechanism is used to control frame flow on a Fibre Channel link to prevent the inability to deliver any frames because of lost R_RDYs or lost frames. Fibre Channel point-to-point links lose credit when an R_RDY or an SOFx (Start Of Frame) is corrupted in transit. As credit is lost, performance degrades until frame timeouts occur. Then the only recourse is to reset the link.
The Fibre Channel standard has a credit recovery mechanism for lost R_RDYs or lost frames. Both ports on the link must support the Fibre Channel credit recovery before it can be enabled.
Fibre Channel credit recovery is used for point to point links (including links from end-user devices to switches).
Fibre Channel credit recovery defines a BB_SC_N number from 0 to 15 and two primitive signals, BB_SCr and BB_SCs. When BB_SC_N is not zero, credit recovery is enabled. Two credit recovery operations are used, one for lost frame(s) and another for lost R_RDY(s).
For lost frame(s) credit recovery, BB_SCs is transmitted whenever 2**BB_SC_N frames have been transmitted since the last BB_SCs was transmitted. The receiving port counts the number of frames received between BB_SCs primitive signals received and if the number is less than 2*BB_SC_N, it transmits as many R_RDYs as frames were lost back to the originator of the frames. Thus the originator does not lose credit for transmitting more frames.
For lost R_RDY(s) credit recovery, BB_SCr is transmitted whenever 2**BB_SC_N R_RDYs have been transmitted since the last BB_SCr was transmitted. The receiving port counts the number of R_RDYs received between BB_SCr primitive signals received and if the number is less than 2*BB_SC_N, it adds the lost number of credits to its credit counter. Thus the receiver does not lose credit for transmitting more frames.
Most FC switches have approximately 8-323 credits per fabric, which meets the requirements for shortwave links. However, the demand for longer links is increasing as networks are being spread globally.
A fibre channel credit extender is very desirable for long range communication. Typically, this extender is placed between an end node and an optical repeater.
Conventional credit extenders do not accurately maintain buffer to buffer recovery information between its input and output interface as described above. This can result in disruption of network traffic.
Therefore, what is required is a process and system that efficiently maintains buffer to buffer recovery information in credit extenders.